import java.util.Stack;

public class StatckTest {
    public static void main(String[] args) {
        Stack<String> stack=new Stack<>();
        //向栈中加入元素
        stack.push("a");
        stack.push("b");
        stack.push("c");
        System.out.println(stack.peek());
        //返回元素在栈容器中的位置
        System.out.println( stack.search("a"));
        //从栈中提取元素
        String pop1 = stack.pop();
        System.out.println(pop1);
        String pop2 = stack.pop();
        System.out.println(pop2);
        String pop3= stack.pop();
        System.out.println(pop3);
        System.out.println("----------");
        StatckTest statckTest=new StatckTest();
        statckTest.symetry();
    }
    //匹配符号的对称性
    public void symetry(){
        String str="...{.....[....(....)...]....}..(....)..[...]...(";

        Stack<String> stack=new Stack<>();
        //假设修正法
        boolean flag=true;
        for (int i = 0; i <str.length() ; i++) {
            char c=str.charAt(i);
            if(c=='{'){
                stack.push("}");
            }
            if(c=='['){
                stack.push("]");
            }
            if(c=='('){
                stack.push(")");
            }
            //判断符号是否匹配
            if(c=='}' || c==']' || c==')'){
                if(stack.empty()){
                    flag=false;
                    break;
                }
                String s= stack.pop();
                if(s.charAt(0)!=c){
                    flag=false;
                    break;
                }
            }

        }
        if(!stack.isEmpty()){
            flag=false;
        }
        System.out.println(flag);
    }
}
